In recent years, there has been increasing movement away from traditional on-premises computer networks toward cloud-based or virtual computer networks. Use of virtual machines (VMs), containers, and even serverless code has proliferated and become an integral part of IT infrastructure for all types of businesses, government agencies, and educational institutions. Through platform offerings such as Software-as-a-Service (SaaS), Infrastructure-as-a-Service (IaaS), and Platform-as-a-Service (PaaS), enterprises and other institutions are able to remotely store, process, and access data and software to run their operations.
In these modern environments, dynamic and automated processes cause the environments to change constantly. For example, the resources in an environment may be automatically spun up and down on a large scale. Examples of modern and dynamic resources are: Cloud VMs (AWS™ EC2 instances, Azure™ VMs, etc.), Containers (Docker™, etc.), Kubernetes™, etc.
However, the lifetime of these automated resources may be relatively short. After a resource is shut down, it may be deallocated and may not be reached again. Without an advanced controlling/managing/audit system, the information from the deallocated resources, e.g., containers and VMs (e.g., their data, files, RAM memory, processes, threads, network connections, etc.) no longer exists and cannot be searched, recovered, or reinstantiated.
Thus, there exist technological needs and current technological shortcomings to enable fully audited and controlled dynamic environments with the ability to fully search and recover historic states of the environments. There are also needs for technologies to perform live checks and tests on these highly dynamic resources.